﻿namespace DotNetStar.OpenSDK.WeChat.Pay
{
    /// <summary>
    /// 查询订单的 api 响应结果。
    /// </summary>
    /// <seealso cref="WeChatPayApiResponse" />
    public class OrderQueryApIResponse:WeChatPayApiResponse
    {
        /// <summary>
        /// 微信支付分配的终端设备号。
        /// </summary>
        public string Device_Info { get; set; }
        /// <summary>
        /// 用户在商户appid下的唯一标识。
        /// </summary>
        public string OpenId { get; set; }

        /// <summary>
        /// 用户是否关注公众账号，Y-关注，N-未关注，仅在公众账号类型支付有效。
        /// </summary>
        public string Is_Subscribe { get; set; }
        /// <summary>
        /// 调用接口提交的交易类型。
        /// </summary>
        public string Trade_Type { get; set; }
        /// <summary>
        /// SUCCESS—支付成功
        ///REFUND—转入退款
        ///NOTPAY—未支付
        ///CLOSED—已关闭
        ///REVOKED—已撤销（刷卡支付）
        ///USERPAYING--用户支付中
        ///PAYERROR--支付失败(其他原因，如银行返回失败)
        ///支付状态机请见下单API页面
        /// </summary>
        public string Trade_State { get; set; }

        /// <summary>
        /// 银行类型，采用字符串类型的银行标识。
        /// </summary>
        public string Bank_Type { get; set; }
        /// <summary>
        /// 订单总金额，单位为分。
        /// </summary>
        public int Total_Fee { get; set; }
        /// <summary>
        /// 当订单使用了免充值型优惠券后返回该参数，应结订单金额=订单金额-免充值优惠券金额。
        /// </summary>
        public int Settlement_Total_Fee { get; set; }
        /// <summary>
        /// 货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY。
        /// </summary>
        public string Fee_Type { get; set; }
        /// <summary>
        /// 现金支付金额订单现金支付金额。
        /// </summary>
        public int Cash_Fee { get; set; }
        /// <summary>
        /// 货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY。
        /// </summary>
        public string Cash_Fee_Type { get; set; }
        /// <summary>
        /// “代金券”金额&lt;= 订单金额，订单金额-“代金券”金额=现金支付金额。
        /// </summary>
        public double Coupon_Fee { get; set; }
        /// <summary>
        /// 代金券使用数量。
        /// </summary>
        public int Coupon_Count { get; set; }

        /// <summary>
        /// CASH--充值代金券 
        /// NO_CASH---非充值优惠券
        /// 开通免充值券功能，并且订单使用了优惠券后有返回（取值：CASH、NO_CASH）
        /// </summary>
        public string[] Coupon_Type { get; set; }
        /// <summary>
        /// 代金券ID。
        /// </summary>
        public string[] Coupon_id { get; set; }
        /// <summary>
        /// 单个代金券支付金额。
        /// </summary>
        public double[] Coupon_Fees { get; set; }
        /// <summary>
        /// 微信支付订单号。
        /// </summary>
        public string Transaction_Id { get; set; }
        /// <summary>
        /// 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@ ，且在同一个商户号下唯一。
        /// </summary>
        public string Out_Trade_No { get; set; }
        /// <summary>
        /// 附加数据，原样返回。
        /// </summary>
        public string Attach { get; set; }
        /// <summary>
        /// 订单支付时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。
        /// </summary>
        public string Time_End { get; set; }
        /// <summary>
        /// 对当前查询订单状态的描述和下一步操作的指引。
        /// </summary>
        public string Trade_State_Desc { get; set; }
    }
}
